﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brainee.Immutable
{
  // From Eric Lippert:
  // http://blogs.msdn.com/ericlippert/archive/2007/12/04/immutability-in-c-part-two-a-simple-immutable-stack.aspx
  public interface IStack<T> : IEnumerable<T>
  {
    IStack<T> Push (T value);
    IStack<T> Pop ();
    T Peek ();
    bool IsEmpty { get; }
  }
}
